//
//  BaseCollectionView.h
//  ArtDog
//
//  Created by dllo on 16/8/31.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <UIKit/UIKit.h>
@class CollectionViewReturnParam;

NS_ASSUME_NONNULL_BEGIN

typedef void(^CellForItemAtIndexPath)(UICollectionView *collectionView, NSIndexPath *indexPath, CollectionViewReturnParam *collectionViewParam);
typedef void(^NumbersOfSection)(UICollectionView *collectionView, CollectionViewReturnParam *collectionViewParam);
typedef void(^NumberOfItems)(UICollectionView *collectionView, CollectionViewReturnParam *collectionViewParam);
typedef void(^DidSelectItemAtIndexPath)(UICollectionView *collectionView, NSIndexPath *indexPath);

@interface BaseCollectionView : UICollectionView<UICollectionViewDelegate, UICollectionViewDataSource>

- (void)collectionViewWithNumberOfSection:(NumbersOfSection)numberOfSection andNumberOfItems:(NumberOfItems)numberOfItems andCellForitemAtIndexPath:(CellForItemAtIndexPath)cellForItemAtIndexPath andDidSelectItemAtIndexPath:(DidSelectItemAtIndexPath)didSelectItemAtIndexPath;

- (void)collectionViewWithNumberOfItems:(NumberOfItems)numberOfItems andCellForItemAtIndexPath:(CellForItemAtIndexPath)cellForItemAtIndexPath andDidSelectItemAtIndexPath:(DidSelectItemAtIndexPath)didSelectItemAtIndexPath;

- (void)collectionViewWithNumberOfItems:(NumberOfItems)numberOfItems andCellForItemAtIndexPath:(CellForItemAtIndexPath)cellForItemAtIndexPath;

@end

@interface CollectionViewReturnParam : NSObject

@property (nonatomic, assign) NSInteger numberOfSection;
@property (nonatomic, assign) NSInteger numberOfItems;
@property (nonatomic, strong, nullable) UICollectionViewCell *returnCell;



@end
NS_ASSUME_NONNULL_END
